﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using RN.Entidades;
using CAD.DAO;
using System.Data;

namespace RN.Componentes
{
    public class CTipodeResponsable
    {
        #region DMLS
        public static bool Insertar(TipodeResponsable objProxy)
        {
            ValidationException x = new ValidationException();
            if (string.IsNullOrEmpty(objProxy.SNOMBRECARGO1))
                x.AgregarError("Ingrese el nombre del cargo");

            if (x.Cantidad > 0)
                throw x;

            DAOTipodeResponsable daoProxy = new DAOTipodeResponsable();
            return daoProxy.Insertar(objProxy.SNOMBRECARGO1, objProxy.SDESCRIPCION_DSC1,objProxy.ICONCURRENCIA1) > 0;
        }
        public static bool ActualizarTipoResponsable(TipodeResponsable objProxy)
        {
            ValidationException x = new ValidationException();
            if (objProxy.LTIPODERESPONSABLE1 <= 0)
                x.AgregarError("Ingrese el código");

            if (string.IsNullOrEmpty(objProxy.SNOMBRECARGO1))
                x.AgregarError("Ingrese el nombre del cargo");

            if (x.Cantidad > 0)
                throw x;

            DAOTipodeResponsable daoProxy = new DAOTipodeResponsable();
            return daoProxy.Actualizar(objProxy.LTIPODERESPONSABLE1, objProxy.SNOMBRECARGO1, objProxy.SDESCRIPCION_DSC1,objProxy.ICONCURRENCIA1);

        }
        public static bool EliminarPersonal(int Itiporesponsable_id1)
        {
            ValidationException x = new ValidationException();
            if (Itiporesponsable_id1 <= 0)
                x.AgregarError("Ingrese el código");

            if (x.Cantidad > 0)
                throw x;

            DAOTipodeResponsable daoProxy = new DAOTipodeResponsable();
            return daoProxy.Eliminar(Itiporesponsable_id1);
        }
        #endregion
        #region Selects
        public static List<TipodeResponsable> Traer()
        {
            DAOTipodeResponsable daoProxy = new DAOTipodeResponsable();
            DataSet dtsProxy = daoProxy.TraerTipodeResponsable();

            return CargarLista(dtsProxy.Tables[0]);
        }
        public static TipodeResponsable TraerXId(int Itiporesponsable_id1)
        {
            DAOTipodeResponsable daoProxy = new DAOTipodeResponsable();
            DataSet dtsProxy = daoProxy.TraerTipodeResponsableXId(Itiporesponsable_id1);


            return Cargar(dtsProxy.Tables[0].Rows[0]);
        }
        public static TipodeResponsable TraerXNombre(string nombre)
        {
            DAOTipodeResponsable daoProxy = new DAOTipodeResponsable();
            DataSet dtsProxy = daoProxy.TraerTipodeResponsableXNombre(nombre);


            return Cargar(dtsProxy.Tables[0].Rows[0]);
        }
        #endregion
        #region Metodos Privados
        private static List<TipodeResponsable> CargarLista(DataTable tabla)
        {
            List<TipodeResponsable> lstProxy = new List<TipodeResponsable>();

            foreach (DataRow fila in tabla.Rows)
            {
                lstProxy.Add(Cargar(fila));
            }
            return lstProxy;
        }
        private static TipodeResponsable Cargar(DataRow fila)
        {
            TipodeResponsable objProxy = new TipodeResponsable();
            objProxy.LTIPODERESPONSABLE1 = Convert.ToInt32(fila["LTIPODERESPONSABLE"]);
            objProxy.SNOMBRECARGO1 = fila["SNOMBRECARGO"].ToString();
            objProxy.SDESCRIPCION_DSC1 = fila["SDESCRIPCION_SC"].ToString();
            
            return objProxy;
        }
        #endregion
    }
}
